package define
{
	public class CharacterConst
	{
		public static const CLASS_PROMPT:String = "Class..";
		public static const TALENT_PROMPT:String = "Talent..";
		
		public static const DEATH_KNIGHT:String = "Death Knight";
		public static const DRUID:String = "Druid";
		public static const HUNTER:String = "Hunter";
		public static const MAGE:String = "Mage";
		public static const PALADIN:String = "Paladin";
		public static const PRIEST:String = "Priest";
		public static const ROGUE:String = "Rogue";
		public static const SHAMAN:String = "Shaman";
		public static const WARLOCK:String = "Warlock";
		public static const WARRIOR:String = "Warrior";

		public static const DEATH_KNIGHT_TALENT_BLOOD:String = "Blood";
		public static const DEATH_KNIGHT_TALENT_FROST:String = "Frost";
		public static const DEATH_KNIGHT_TALENT_UNHOLY:String = "Unholy";
		public static const DRUID_TALENT_BALANCE:String = "Balance";
		public static const DRUID_TALENT_FERAL_COMBAT:String = "Feral Combat";
		public static const DRUID_TALENT_RESTORATION:String = "Restoration";
		public static const HUNTER_TALENT_BEAST_MASTERY:String = "Beast Mastery";
		public static const HUNTER_TALENT_MARKSMANSHIP:String = "Marksmanship";
		public static const HUNTER_TALENT_SURVIVAL:String = "Survival";
		public static const MAGE_TALENT_ARCANE:String = "Arcane";
		public static const MAGE_TALENT_FIRE:String = "Fire";
		public static const MAGE_TALENT_FROST:String = "Frost";
		public static const PALADIN_TALENT_HOLY:String = "Holy";
		public static const PALADIN_TALENT_PROTECTION:String = "Protection";
		public static const PALADIN_TALENT_RETRIBUTION:String = "Retribution";
		public static const PRIEST_TALENT_DISCIPLINE:String = "Discipline";
		public static const PRIEST_TALENT_HOLY:String = "Holy";
		public static const PRIEST_TALENT_SHADOW:String = "Shadow";
		public static const ROGUE_TALENT_ASSASSINATION:String = "Assassination";
		public static const ROGUE_TALENT_COMBAT:String = "Combat";
		public static const ROGUE_TALENT_SUBTLETY:String = "Subtlety";
		public static const SHAMAN_TALENT_ELEMENTAL:String = "Elemental";
		public static const SHAMAN_TALENT_ENHANCEMENT:String = "Enhancement";
		public static const SHAMAN_TALENT_RESTORATION:String = "Restoration";
		public static const WARLOCK_TALENT_AFFLICTION:String = "Affliction";
		public static const WARLOCK_TALENT_DEMONOLOGY:String = "Demonology";
		public static const WARLOCK_TALENT_DESTRUCTION:String = "Destruction";
		public static const WARRIOR_TALENT_ARMS:String = "Arms";
		public static const WARRIOR_TALENT_FURY:String = "Fury";
		public static const WARRIOR_TALENT_PROTECTION:String = "Protection";
		
		public static function getAllClasses():Array
		{
			return [DEATH_KNIGHT, DRUID, HUNTER, MAGE, PALADIN, PRIEST, ROGUE, SHAMAN, WARLOCK, WARRIOR];
		}
		public static function getTalents(propClass:String):Array
		{
			if(propClass == DEATH_KNIGHT)
				return [DEATH_KNIGHT_TALENT_BLOOD, DEATH_KNIGHT_TALENT_FROST, DEATH_KNIGHT_TALENT_UNHOLY];
			else if(propClass == DRUID)
				return [DRUID_TALENT_BALANCE, DRUID_TALENT_FERAL_COMBAT, DRUID_TALENT_RESTORATION];
			else if(propClass == HUNTER)
				return [HUNTER_TALENT_BEAST_MASTERY, HUNTER_TALENT_MARKSMANSHIP, HUNTER_TALENT_SURVIVAL];
			else if(propClass == MAGE)
				return [MAGE_TALENT_ARCANE, MAGE_TALENT_FIRE, MAGE_TALENT_FROST];
			else if(propClass == PALADIN)
				return [PALADIN_TALENT_HOLY, PALADIN_TALENT_PROTECTION, PALADIN_TALENT_RETRIBUTION];
			else if(propClass == PRIEST)
				return [PRIEST_TALENT_DISCIPLINE, PRIEST_TALENT_HOLY, PRIEST_TALENT_SHADOW];
			else if(propClass == ROGUE)
				return [ROGUE_TALENT_ASSASSINATION, ROGUE_TALENT_COMBAT, ROGUE_TALENT_SUBTLETY];
			else if(propClass == SHAMAN)
				return [SHAMAN_TALENT_ELEMENTAL, SHAMAN_TALENT_ENHANCEMENT, SHAMAN_TALENT_RESTORATION];
			else if(propClass == WARLOCK)
				return [WARLOCK_TALENT_AFFLICTION, WARLOCK_TALENT_DEMONOLOGY, WARLOCK_TALENT_DESTRUCTION];
			else if(propClass == WARRIOR)
				return [WARRIOR_TALENT_ARMS, WARRIOR_TALENT_FURY, WARRIOR_TALENT_PROTECTION];
			else
				return null;
		}
		public static function isMelee(propClass:String, propTalent:String):Boolean
		{
			if((propClass == DEATH_KNIGHT && propTalent != DEATH_KNIGHT_TALENT_FROST)
				|| (propClass == DRUID && propTalent == DRUID_TALENT_FERAL_COMBAT)
				|| (propClass == HUNTER)
				|| (propClass == PALADIN && propTalent == PALADIN_TALENT_RETRIBUTION)
				|| (propClass == ROGUE)
				|| (propClass == SHAMAN && propTalent == SHAMAN_TALENT_ENHANCEMENT)
				|| (propClass == WARRIOR && propTalent != WARRIOR_TALENT_PROTECTION))
				return true;
			else
				return false;
		}
		public static function isTank(propClass:String, propTalent:String):Boolean
		{
			if((propClass == DEATH_KNIGHT && propTalent == DEATH_KNIGHT_TALENT_FROST)
				|| (propClass == PALADIN && propTalent == PALADIN_TALENT_PROTECTION)
				|| (propClass == WARRIOR && propTalent == WARRIOR_TALENT_PROTECTION))
				return true;
			else
				return false;
		}
		public static function isCaster(propClass:String, propTalent:String):Boolean
		{
			if((propClass == DRUID && propTalent != DRUID_TALENT_FERAL_COMBAT)
				|| (propClass == MAGE)
				|| (propClass == PALADIN && propTalent == PALADIN_TALENT_HOLY)
				|| (propClass == PRIEST)
				|| (propClass == SHAMAN && propTalent != SHAMAN_TALENT_ENHANCEMENT)
				|| (propClass == WARLOCK))
				return true;
			else
				return false;
		}
	}
}